﻿from collections import deque




class Stack:
   def __init__(self):
       self.stack = deque()


   def pop(self):
       """Метод удаляющий верхний элемент. Стек изменяется. Метод возвращает верхний элемент стека"""
       if len(self.stack) == 0:
           return None
       return self.stack.pop()


   def push(self, item):
       """Метод добавляющий элемент на вершину стека. Метод ничего не возвращает"""
       self.stack.append(item)


   def is_empty(self):
       """Метод проверки стека на пустоту. Должен возвращать True или False"""
       return len(self.stack) == 0


   def peek(self):
       """Метод возвращает верхний элемент стека, но не удаляет его. Стек не меняется"""
       if len(self.stack) == 0:
           return None
       element = self.stack[-1]
       return element




def check_stack(text):
   stack = Stack()
   for i in range(0, len(text)):
       if text[i] in "({[":
           stack.push(text[i])
       if text[i] in "})]":
           s = stack.pop()
           if (text[i] == ")" and s == "("):
               pass
           else:
               return False
       break
   return stack.is_empty()


print(check_stack('(((())))'))